Mongodb 实现模糊查询
import com.mongodb.*; import java.util.regex.Pattern; public class MongoColl { private static MongoClient mongoClient = new MongoClient("127.0.0.1", 27017); public DBCollection collection(String dbName, String collection){ return mongoClient.getDB(dbName).getCollection(collection); } public static void main(String[] args){ DBCollection collection = new MongoColl().collection("text", "text"); String reg = "asd"; Pattern pattern = Pattern.compile("^" + reg + ".*$", Pattern.CASE_INSENSITIVE); DBObject regex = new BasicDBObject(); regex.put("$regex", pattern); DBObject query2 = new BasicDBObject("name", regex); DBCursor cursor = collection.find(query2); if (cursor.hasNext()){ DBObject object2 = cursor.next(); System.out.println(object2.toString()); } } }
以上代码是实现Mongo模糊查询左匹配,亲测可用。
//完全匹配 Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE); //右匹配 Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE); //左匹配 Pattern pattern = Pattern.compile("^name.*$", Pattern.CASE_INSENSITIVE); //模糊匹配 Pattern pattern = Pattern.compile("^.*name8.*$", Pattern.CASE_INSENSITIVE);